#pragma once

#include <AST/expr/literal/LiteralAST.hpp>

class Int : public Literal {
  public:
    const int val;

    Int(int val);

    virtual Type *getType() override;

    virtual Constant *codegen() override;

    static Value *getDefault();

    friend class graphviz::GraphGenerator;

    virtual VisitResult accept(ASTVisitor &visitor) const override {
        return visitor.visitIntAST(this);
    }
};